/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.upn.sigemfi.gar.beans;

import edu.upn.sigemfi.gar.bc.NotariaDelegate;
import edu.upn.sigemfi.gar.be.Notaria;
import java.util.List;
import javax.faces.model.SelectItem;

/**
 *
 * @author Freddy
 */
public class NotariaController extends AbstractController{

    private Notaria notaria;
    private NotariaDelegate delegado;

    public NotariaController() {
        delegado = new NotariaDelegate();
    }

    public Notaria getNotaria() {
        return notaria;
    }

    public void setNotaria(Notaria notaria) {
        this.notaria = notaria;
    }

    public String mostrar()
    {
        return "mostrar";
    }

    public String editar()
    {
        return "editar";
    }

    public String actualizar() {
        try {
            delegado.editar(notaria);
            info("La Notaria se actualizo correctamente");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "volver";
    }

    public String nuevaNotaria() {
        notaria = new Notaria();
        return "nuevo";
    }

    public Notaria buscar(Long codigo) {
        try {
            return delegado.buscar(codigo);
        } catch (Exception e) {
            //edu.upn.sigemfi.gar.beans.AbstractController.error(e.getMessage());
            error(e.getMessage());
        }
        return null;
    }

    public String eliminar() {
        try {
            delegado.eliminar(notaria);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }

    public String registrarNotaria() {
        try {
            delegado.crear(notaria);
            info("La Notaria se registro correctamente");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "registrar";
    }

    public List<Notaria> getNotarias() throws Exception{
        try{
            return delegado.listar();
        }catch (Exception ex){
            ex.printStackTrace();
        }
        return null;
    }

    public SelectItem[] getNotariasSI() {
        SelectItem[] select = null;
        try {
            List<Notaria> lista = delegado.listar();
            if (lista != null) {
               // select = new SelectItem[lista.size() + 1];
                select = new SelectItem[lista.size()+1];
                int i = 0;
                select[i++] = new SelectItem(null, "<<Seleccione una notaria>>");
                for (Notaria c : lista) {
                  //  select[i++] = new SelectItem(c.getIdNotaria(), c.getNombre());
                    select[i++] = new SelectItem(c,c.getNombre());
                }
            } else {
                select = new SelectItem[1];
                select[0] = new SelectItem(null, "<<No existen notarias>>");
            }
        } catch (Exception e) {
            select = new SelectItem[1];
            select[0] = new SelectItem(null, "<<Error al momento de obtener los datos>>");
            error(e.getMessage());
        }
        return select;
    }
}
